import { IsString, MinLength, MaxLength, Matches } from 'class-validator';

/**
 * 修改密码 DTO
 */
export class ChangePasswordDto {
  /**
   * 旧密码
   */
  @IsString()
  oldPassword: string;

  /**
   * 新密码
   * - 长度：6-20 位
   * - 必须包含字母和数字
   */
  @IsString()
  @MinLength(6, { message: '密码长度不能少于6位' })
  @MaxLength(20, { message: '密码长度不能超过20位' })
  @Matches(/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*#?&]{6,}$/, {
    message: '密码必须包含字母和数字',
  })
  newPassword: string;
}
